package(default_visibility = ["//visibility:public"])

load(
    "@io_bazel_rules_docker//container:container.bzl",
    "container_image",
    "container_bundle",
)

container_image(
    name = "dns-controller",
    base = "@debian_hyperkube_base_amd64//image",
    cmd = ["/usr/bin/dns-controller"],
    directory = "/usr/bin/",
    files = [
        "//dns-controller/cmd/dns-controller",
    ],
)

load("@package_bundle//file:packages.bzl", "packages")

container_image(
    name = "protokube-image",
    base = "@debian_hyperkube_base_amd64//image",
    cmd = ["/usr/bin/protokube"],
    # Packages needed:
    # ca-certificates: Needed to talk to EC2 API (in base)
    # e2fsprogs: Needed to mount / format ext4 filesytems (in base)
    # systemd: needed to start kubelet
    # TODO: Replace systemd with direct calls, or chroot into rootfs
    debs = [
        packages["cgmanager"],
        packages["dbus"],
        packages["libapparmor1"],
        packages["libcgmanager0"],
        packages["libcryptsetup4"],
        packages["libdbus-1-3"],
        packages["libnih-dbus1"],
        packages["libnih1"],
        packages["libpam-systemd"],
        packages["libprocps6"],
        packages["libseccomp2"],
        packages["procps"],
        packages["systemd-shim"],
        packages["systemd"],
    ],
    files = [
        "//channels/cmd/channels",
        "//protokube/cmd/protokube",
    ],
    # Cannot use directory with packages or they get installed with
    # directory as the root.
    # directory = "/usr/bin/",
    # TODO: figure out if there's a way to add files
    # to actual /usr/bin while using debs above.
    symlinks = {
        "/usr/bin/channels": "/channels",
        "/usr/bin/protokube": "/protokube",
    },
)

container_bundle(
    name = "protokube",
    images = {
        "protokube:{STABLE_PROTOKUBE_TAG}": "protokube-image",
    },
    stamp = True,
)

container_image(
    name = "kube-discovery",
    base = "@debian_hyperkube_base_amd64//image",
    cmd = ["/usr/bin/kube-discovery"],
    directory = "/usr/bin/",
    files = [
        "//kube-discovery/cmd/kube-discovery",
    ],
)
